UInt8 ccbFill[144]; /*CCB memory allocated for driver Login needs only 150 bytes BUT CCB really starts in the middle of AFPSCBPtr and also clobbers AFPAttnRoutine. */
};
typedef struct AFPLoginPrm AFPLoginPrm;
struct XCallParam {
QElem *qLink;
short qType;
short ioTrap;
Ptr ioCmdAddr;
XPPCompletionUPP ioCompletion;
OSErr ioResult;
long cmdResult;
short ioVRefNum;
short ioRefNum;
short csCode;
short xppSubCode;
UInt8 xppTimeout;
UInt8 xppRetry;
short filler1;
Ptr zipBuffPtr;
short zipNumZones;
UInt8 zipLastFlag;
UInt8 filler2;
UInt8 zipInfoField[70];
};
typedef struct XCallParam XCallParam;
union XPPParamBlock {
XPPPrmBlk XPP;
ASPGetparmsBlk GETPARM;
ASPAbortPrm ABORT;
ASPOpenPrm OPEN;
AFPLoginPrm LOGIN;
XCallParam XCALL;
};
#define MOREATPHeader \
UInt8 atpSocket; \
UInt8 atpFlags; \
AddrBlock addrBlock; \
short reqLength; \
Ptr reqPointer; \
Ptr bdsPointer;
struct ATPparms {
QElem *qLink;
short qType;
short ioTrap;
Ptr ioCmdAddr;
ATPCompletionUPP ioCompletion;
OSErr ioResult;
long userData;
short reqTID;
short ioRefNum;
short csCode;
UInt8 atpSocket;
UInt8 atpFlags;
AddrBlock addrBlock;
short reqLength;
Ptr reqPointer;
Ptr bdsPointer;
};
typedef struct ATPparms ATPparms;
struct SendReqparms {
QElem *qLink;
short qType;
short ioTrap;
Ptr ioCmdAddr;
ATPCompletionUPP ioCompletion;
OSErr ioResult;
long userData;
short reqTID;
short ioRefNum;
short csCode;
UInt8 atpSocket;
UInt8 atpFlags;
AddrBlock addrBlock;
short reqLength;
Ptr reqPointer;
Ptr bdsPointer;
UInt8 numOfBuffs;
UInt8 timeOutVal;
UInt8 numOfResps;
UInt8 retryCount;
short intBuff;
UInt8 TRelTime;
SInt8 filler0;
};
typedef struct SendReqparms SendReqparms;
struct ATPmisc1 {
QElem *qLink;
short qType;
short ioTrap;
Ptr ioCmdAddr;
ATPCompletionUPP ioCompletion;
OSErr ioResult;
long userData;
short reqTID;
short ioRefNum;
short csCode;
UInt8 atpSocket;
UInt8 atpFlags;
AddrBlock addrBlock;
short reqLength;
Ptr reqPointer;
Ptr bdsPointer;
union {
UInt8 bitMap; /*bitmap received */
UInt8 numOfBuffs; /*number of responses being sent*/